package modele.mode;

import modele.Drapeau;
import modele.Joueur;
import modele.Plateau;
import modele.case_.CaseTrouDrapeau;
import modele.pion.Pion;

/**
 * Dans le mode drapeau la partie se termine lorsque un des deux joueurs ramène
 * le drapeau adverse dans sa base
 *
 * @author zianechm
 */
public class ModeDrapeau extends Mode {

	public ModeDrapeau() {
	}

	@Override
	public void mettreAJour(Plateau plateau) {
	}

	@Override
	public Joueur getJoueurGagnant(Plateau plateau, Joueur joueur1, Joueur joueur2) {
		Joueur jGagnant = super.getJoueurGagnant(plateau, joueur1, joueur2);
		if (jGagnant != null) {
			return jGagnant;
		} else {
			for (Drapeau drapeau : plateau.getDrapeaux()) {
				Pion pion = drapeau.getPion();
				if (pion != null && pion.getCase() instanceof CaseTrouDrapeau
						&& ((CaseTrouDrapeau) pion.getCase()).getNumeroJoueur() == pion.getJoueur().getNumero()) {
					return pion.getJoueur();
				}
			}
			return null;
		}
	}
}
